package com.itheima.reggie.utils;


import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.sms.v20190711.SmsClient;
import com.tencentcloudapi.sms.v20190711.models.SendSmsRequest;
import com.tencentcloudapi.sms.v20190711.models.SendSmsResponse;

/**
 * 短信发送工具类
 */
public class SMSUtils {
	public static final String VALIDATE_CODE = "1518687";//发送短信验证码
	public static final String ORDER_NOTICE = "1519323";//体检预约成功通知

	public static void sendShortMessage(String templateID,String[] phoneNumbers,String[] templateParams){
		try {
			//1.提供账号密码
			//CAM 密钥查询：https://console.cloud.tencent.com/cam/capi*/
			Credential cred = new Credential("AKID3yoQnvpWzDCwSjl02qQlrjMkuqXzbz8g", "WpvpVAfwz1oMjtpX4PVMyMktsc8RWRCm");

			//2.实例化client对象
			/* 第二个参数是地域信息，可以直接填写字符串 ap-guangzhou，或者引用预设的常量 */
			SmsClient client = new SmsClient(cred, "ap-guangzhou");

			//3.实例化请求对象
			SendSmsRequest req = new SendSmsRequest();

			//4.提供一系列的请求参数

			/* 短信应用 ID: 在 [短信控制台] 添加应用后生成的实际 SDKAppID，例如1400006666 */
			String appid = "1400725728";
			req.setSmsSdkAppid(appid);

			/* 短信签名内容: 使用 UTF-8 编码，必须填写已审核通过的签名，可登录 [短信控制台] 查看签名信息 */
			String sign = "达布卡健康公众号";
			req.setSign(sign);


			/* 模板 ID: 必须填写已审核通过的模板 ID，可登录 [短信控制台] 查看模板 ID */
			//String templateID = "1518687";
			req.setTemplateID(templateID);

			/* 下发手机号码，采用 e.164 标准，+[国家或地区码][手机号]
			 * 例如+8613711112222， 其中前面有一个+号 ，86为国家码，13711112222为手机号，最多不要超过200个手机号*/
			//String[] phoneNumbers = {"+8615798070380"};
			for (int i = 0; i <phoneNumbers.length ; i++) {
				phoneNumbers[i]="+86"+phoneNumbers[0];
			}
			req.setPhoneNumberSet(phoneNumbers);

			//模板参数{1}，{2}
			//String[] templateParams = {"1311"};
			req.setTemplateParamSet(templateParams);

			//5.发送请求
			SendSmsResponse res = client.SendSms(req);

		} catch (TencentCloudSDKException e) {
			e.printStackTrace();
		}
	}
}
